package com.info.zhiduoduo.repository.entity.maker;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 *
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)  //setter return this;
@ToString
@TableName("zdd_maker")
public class Maker extends Model<Maker> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "userid", type = IdType.AUTO)
    private Integer userid;
    /**
     * 手机号码
     */
    private String phone;
    /**
     * 邀请码
     */
    @TableField("invite_code")
    private String inviteCode;
    /**
     *  邀请码
     */
    @TableField("taxer_invite_code")
    private String taxerInviteCode;
    /**
     * 密码
     */
    private String password;
    /**
     * 微信名
     */
    private String nickname;
    /**
     * 微信OPENID
     */
    private String openid;
    /**
     *  OPENID
     */
    @TableField("taxer_openid")
    private String taxerOpenid;
    /**
     * 智众包OPENID, 当智众包创客转换成 创客时, 记录之前的智众包openid
     */
    @TableField("crowdsource_openid")
    private String crowdsourceOpenid;
    /**
     * 微信唯一标识
     */
    private String unionid;
    /**
     * 头像url
     */
    private String avatar;
    /**
     * 0未知1男2女
     */
    private Integer sex;
    /**
     * 1:免费用户，2:收费用户
     */
    private Integer usertype;
    /**
     * 创客类型：1：  2：  3:智众包创客
     */
    @TableField("maker_type")
    private Integer makerType;
    /**
     *  注册支付id
     */
    private Integer payid;
    /**
     *  生效日期
     */
    @TableField("issue_date")
    private Date issueDate;
    /**
     *  到期日期
     */
    @TableField("expire_date")
    private Date expireDate;
    /**
     * 绑定的企业id
     */
    private Integer bindcompid;
    /**
     * 备注所属公司
     */
    private String compremark;
    /**
     * 有无任职公司 0：无 1：有
     * */
    @TableField("has_company")
    private Integer hasCompany;
    /**
     * 是否和交易企业存在劳动雇佣关系 0：否 1：是
     * */
    @TableField("has_contract")
    private Integer hasContract;
    /**
     * 任职企业名
     */
    @TableField("work_company")
    private String workComapny;

    /**
     * 1.微信
     */
    private Integer regfrom;
    /**
     * 用户状态 1注册未认证 2已认证 3冻结 4:已解约
     */
    private Integer state;
    /**
     * 加密salt
     */
    private String salt;
    /**
     * 是否接收公告 0：正常 1：不接受
     */
    @TableField("notice_flag")
    private Integer noticeFlag;
    private Date createtime;
    /**
     * 创客实名认证 1.未认证 2:认证中 3:认证失败 4:已认证 5:已开户
     */
    @TableField(exist = false)
    private int authState;

    /**
     * 认证失败原因
     */
    @TableField(exist = false)
    private String authReason;

    /**
     * 是否已经绑定的银行卡
     */
    @TableField(exist = false)
    private int hasBankcard;

    /**
     *创客工作室注销时间
     *
     **/
    private Date logouttime;

    /**
     *注销凭证
     **/
    @TableField("cancel_voucher")
    private String cancelVoucher;

    /**
     * 特殊费率标记 0:否 1:是
     */
    @TableField("special_rate_flag")
    private Integer specialRateFlag;
    /**
     * 是否平台托管 0:否 1:是
     */
    @TableField("platform_hosting")
    private int platformHosting;
    /**
     * "托管人id"
     */
    @TableField("custodian_id")
    private Integer custodianId;

    /**
     *注销操作人id
     **/
    @TableField("logout_operator")
    private int logoutOperator;

    @Override
    protected Serializable pkVal() {
        return this.userid;
    }
}